<!DOCTYPE html>
<title>Test for canvas bug where fillText resets the current context</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>

<body></body>
<script>
// Bug: https://bugs.webkit.org/show_bug.cgi?id=26436.
// You must see green box with message 'This text should be seen',
// and black box below the green box.
test(function() {
    function pixelToString(p) {
        return "[" + p[0] + ", " + p[1] + ", " + p[2] + ", " + p[3] + "]"
    }

    var canvas = document.createElement("canvas");
    canvas.height = 100;
    canvas.width = 500;
    canvas.style.height = "100";
    canvas.style.width = "500";

    document.body.appendChild(canvas);

    var ctx = canvas.getContext('2d');
    ctx.fillStyle = 'rgb(0,255,0)';
    ctx.fillRect(0, 0, 500, 100);
    ctx.fillStyle = 'rgb(0,0,0)';
    ctx.fillText("This text should be seen", 20, 20);
    ctx.translate(0, 50);
    ctx.font = "10pt Arial";
    ctx.fillText("This text should NOT be seen", 20, 20);
    // If fillText resets the current context, this rectangle won't hide the text.
    ctx.fillStyle = 'rgb(0,0,0)';
    ctx.fillRect(0, 0, 500, 50);

    // Pixel value at 0, 0
    var pixel = ctx.getImageData(0, 0, 1, 1).data;

    var expectedValue = [0, 255, 0, 255];
    assert_array_equals(pixel, expectedValue);
});
</script>